package org.example.service;

import org.example.exception.BusinessException;
import org.example.model.PoJo.Item;
import org.example.model.PoJo.Order;

import java.time.LocalDateTime;
import java.util.List;

public interface OrderService {
    /**
     * 创建订单（带时间模拟参数）
     * @param items 商品列表
     * @param isVIP 是否VIP用户
     * @param currentTime 模拟当前时间（用于测试时间敏感规则）
     */
    Order createOrder(List<Item> items, boolean isVIP, LocalDateTime currentTime) throws BusinessException;

    /**
     * 取消订单（带时间模拟参数）
     * @param orderId 订单ID
     * @param currentTime 模拟当前时间（用于计算超时）
     */
    void cancelOrder(String orderId, LocalDateTime currentTime) throws BusinessException;

    Order updateOrder(String orderId,List<Item> userList,boolean isVIP) throws BusinessException;
}
